#!/bin/sh

#判断文件夹是否存在，若为空，则新建一个
if ! [ -d /tmp/wifi_scan ]; then
mkdir /tmp/wifi_scan
fi
#scan_dir=/tmp/wifi_scan
#扫描
iwlist wlan1 scan >/tmp/wifi_scan/ap
AP=/tmp/wifi_scan/ap

#计算ap的个数
ap_num=`awk '$1 ~/Cell/' $AP | wc -l`
#扫描文件到总行数，并且加1
AP_LINE=`wc -l $AP | awk '{print $1}'`
AP_LINE=`expr $AP_LINE + 1`
#得到Cell所在的行号，并加上总的行数，排在一行，输出到文件CELL中
awk '$1 ~/Cell/{ORS=" ";print FNR}END{print '$AP_LINE'}' $AP > /tmp/wifi_scan/CELL

#i为ap_num的变量
i=1
j=$i
sed_line=""
while [ $i -le $ap_num ]; do
	j=`expr $i + 1`
	#得到sed所需的参数，将第二个参数减一
	sed_line=`awk 'BEGIN{OFS=","}{sec_data=$'$j'-1;print $'$i',sec_data}' /tmp/wifi_scan/CELL`
	#将扫描到的每个ap的信息放到单独的文件中
	sed -n ''$sed_line'p' $AP > /tmp/wifi_scan/$i
#	ssid=`awk -F "\"" '$1 ~/ESSID:/{print $2}' /tmp/wifi_scan/$i`
#	if [ -n "$ssid" ]; then
#	echo scanedNetworks[`expr $i - 1`]=\"$ssid\"\;
#	fi
	echo scanedNetworks[`expr $i - 1`]=\"`awk -F "\"" '$1 ~/ESSID:/{print $2}' /tmp/wifi_scan/$i`\"\;
	echo scanedChannels[`expr $i - 1`]=`awk -F : '$1 ~/Channel/{print $2}' /tmp/wifi_scan/$i`\;
#	echo mac[`expr $i - 1`]=\"`awk '$1 ~/Cell/{print $5}' /tmp/wifi_scan/$i`\"\;
	echo signal[`expr $i - 1`]=`awk -F'[=]' '$1 ~/Quality/{print $3}' /tmp/wifi_scan/$i | awk '{print $1}'`\;
	if [ "`awk -F: '$1 ~/Encryption key/{print $2}' /tmp/wifi_scan/$i`" = "on" ]; then
		if [ -n "`grep "IEEE 802.11i/WPA2 Version 1" /tmp/wifi_scan/$i`" ] && [ -z "`grep "WPA Version 1" /tmp/wifi_scan/$i`"  ]; then
			echo scanedEncrypts[`expr $i - 1`]=\"WPA2\"\;
		
		elif [ -n "`grep "WPA Version 1" /tmp/wifi_scan/$i`"  ] && [ -z "`grep "IEEE 802.11i/WPA2 Version 1" /tmp/wifi_scan/$i`" ]; then
			echo scanedEncrypts[`expr $i - 1`]=\"WPA\"\;
		
		elif [ -n "`grep "IEEE 802.11i/WPA2 Version 1" /tmp/wifi_scan/$i`" ] && [ -n "`grep "WPA Version 1" /tmp/wifi_scan/$i`"  ]; then
			echo scanedEncrypts[`expr $i - 1`]=\"WPA2-WPA\"\;

		else
			echo scanedEncrypts[`expr $i - 1`]=\"WEP\"\;
		fi
		
		echo wpa_tkip_aes[`expr $i - 1`]=\"`awk '$1 ~/Pairwise/{ v1++; if(v1==1) { if ($6 != "") print "CCMP-TKIP" ; else print $5 } }' /tmp/wifi_scan/$i`\"\;
	else
		echo scanedEncrypts[`expr $i - 1`]=\"no\"\;
	fi
	i=`expr $i + 1`  #等号两端不能用空格
done
